package com.example.mywiseelves.dao;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.example.mywiseelves.bean.UserBean;
import com.example.mywiseelves.utils.DBHelper;

/**
 * @author ZJK
 * @data 2021 21
 * @description 对用户表的数据进行增删查改操作
 */
public class UserDao {
    private final DBHelper dbHelper;

    public UserDao(Context context) {
        //创建数据库
        dbHelper = new DBHelper(context);
    }

    /**
     * 添加用户数据
     * */
    public void insertData(){
        //db对象
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        try {
            //开启事务
            db.beginTransaction();
            //存储体
            ContentValues values = new ContentValues();
            //添加数据
            //用户名称
            values.put("user_name", "无名氏");
            //用户祈愿点
            values.put("user_point",0);
            //用户祈愿次数
            values.put("user_pray", 0);
            //用户广告次数
            values.put("user_ad", 0);
            //插入数据
            db.insert("user", null, values);
            //事务成功
            db.setTransactionSuccessful();
            Log.v("myapp","用户表数据初始化成功");
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            //结束事务
            db.endTransaction();
            //关闭数据库
            db.close();
        }
    }
    /**
     * 用户祈愿点更新,祈愿成功，用户获得祈愿点
     * 改变祈愿状态和祈愿点数
     */
    public void userPointUpdate1(UserBean userBean) {
        //db对象
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        try {
            //开启事务
            db.beginTransaction();
            //存储体
            ContentValues values = new ContentValues();
            //用户祈愿点
            values.put("user_point", userBean.getUser_point());
            //用户祈愿次数
            values.put("user_pray", userBean.getUser_pray());
            //更新数据
            db.update("user",  values,null,null);
            //事务成功
            db.setTransactionSuccessful();
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            //结束事务
            db.endTransaction();
            //关闭数据库
            db.close();
        }
    }

    /**
     * 用户祈愿点更新,观看广告，用户获得祈愿点
     * 改变广告状态和祈愿点数
     */
    public void userPointUpdate2(UserBean userBean) {
        //db对象
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        try {
            //开启事务
            db.beginTransaction();
            //存储体
            ContentValues values = new ContentValues();
            //修改数据
            //用户祈愿点
            values.put("user_point", userBean.getUser_point());
            //用户广告次数
            values.put("user_ad", userBean.getUser_ad());
            //更新数据
            db.update("user",  values,null,null);
            //事务成功
            db.setTransactionSuccessful();
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            //结束事务
            db.endTransaction();
            //关闭数据库
            db.close();
        }
    }

    /**
     * 用户祈愿点更新,开启图鉴消费祈愿点
     * 改变祈愿点
     */
    public void userPointUpdate3(int userPoint) {
        //db对象
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        try {
            //开启事务
            db.beginTransaction();
            //存储体
            ContentValues values = new ContentValues();
            //修改数据
            //用户祈愿点
            values.put("user_point", userPoint);
            //更新数据
            db.update("user",  values,null,null);
            //事务成功
            db.setTransactionSuccessful();
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            //结束事务
            db.endTransaction();
            //关闭数据库
            db.close();
        }

    }

    /**
     * 用户名称更新,用于帮助中心用户设置
     * 改变名称
     */
    public void userPointUpdate4(UserBean userBean) {
        //db对象
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        try {
            //开启事务
            db.beginTransaction();
            //存储体
            ContentValues values = new ContentValues();
            //修改数据
            //用户祈愿点
            values.put("user_name", userBean.getUser_name());
            //更新数据
            db.update("user",  values,null,null);
            //事务成功
            db.setTransactionSuccessful();
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            //结束事务
            db.endTransaction();
            //关闭数据库
            db.close();
        }

    }
    /**
     * 用户信息查询，主要用于在图鉴页面显示，状态判断
     */
    public UserBean userQuery() {

        //db对象
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        UserBean userBean=new UserBean();

        try {
            //开启事务
            db.beginTransaction();
            String sql="select * from user";
            Cursor cursor=db.rawQuery(sql,null);
            while (cursor.moveToNext()){
                userBean.setUser_name(cursor.getString(cursor.getColumnIndex("user_name")));
                userBean.setUser_point(cursor.getInt(cursor.getColumnIndex("user_point")));
                userBean.setUser_pray(cursor.getInt(cursor.getColumnIndex("user_pray")));
                userBean.setUser_ad(cursor.getInt(cursor.getColumnIndex("user_ad")));
            }
            cursor.close();
            db.setTransactionSuccessful();
            Log.v("myapp","查询成功");
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            //结束事务
            db.endTransaction();
            //关闭数据库
            db.close();
        }
        return userBean;
    }
}
